package com.hejjon.domain.request;

import com.hejjon.core.domain.BaseRequest;
import com.hejjon.domain.response.FeatureFieldCreateResponse;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;


/**
 * @author: cs
 * @date: 2025-05-15 14:13:07
 * @since: 1.0
 */
public class FeatureFieldCreateRequest extends BaseRequest<FeatureFieldCreateResponse> {


    @NotBlank(message = "字段名称不可为空")
    private String name;

    @NotBlank(message = "字段标签不可为空")
    private String label;

    @NotNull(message = "需指定是否为引用")
    private Integer isRef;      // 是否为引用类型  是否是引用类型 1是0否

    @NotNull(message = "需确定业务特征")
    private String featureId;

    /**
     * 字段类型种类：三种取值
     *  业务对象 feature   typeId 对应 business_feature 表主键
     *  业务属性 busiAttr  typeId 对应 business_attr 表主键
     *  基本类型 basicType
     */
    @NotBlank(message = "字段种类不可为空")
    private String kind;

    /**
     * 类型ID
     */
    private String typeId;

    private String description;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public Integer getIsRef() {
        return isRef;
    }

    public void setIsRef(Integer isRef) {
        this.isRef = isRef;
    }

    public String getFeatureId() {
        return featureId;
    }

    public void setFeatureId(String featureId) {
        this.featureId = featureId;
    }

    public String getKind() {
        return kind;
    }

    public void setKind(String kind) {
        this.kind = kind;
    }

    public String getTypeId() {
        return typeId;
    }

    public void setTypeId(String typeId) {
        this.typeId = typeId;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public Class<FeatureFieldCreateResponse> getResponseType() {
        return FeatureFieldCreateResponse.class;
    }
}
